System, Apparatus And Method For Access Control List Processing In A Constrained Environment

ABSTRACT

In one embodiment, a method includes receiving a first request from a first device to access a first resource of the system and determining whether to grant access to the first resource based on a first access control list stored in the system, the first access control list associated with the first device, the first device having a first relevance value, and based on the determination, granting the access to the first resource; and receiving a second request from a second device to access a second resource of the system and forwarding the second request to an access manager service coupled to the system to determine whether to grant access to the second resource based on a second access control list stored in the access manager service associated with the second device, the second device having a second relevance value, receive an access grant from the access manager service and based thereon, granting the access to the second resource.

This application is a continuation of U.S. patent application Ser. No.14/856,857, filed Sep. 17, 2015, which claims priority to U.S.Provisional Patent Application No. 62/172,906, filed on Jun. 9, 2015, inthe names of Ned M. Smith, Mats G. Agerstam and Nathan Heldt-Sheller,entitled SYSTEM, APPARATUS AND METHOD FOR ACCESS CONTROL LIST PROCESSINGIN A CONSTRAINED ENVIRONMENT, the disclosure of which is herebyincorporated by reference.

BACKGROUND

Internet of Things (IoT) networks, unlike enterprise and cloud networks,are expected to function even when central servers fail or are notavailable. IoT networks may be designed to be survivable under adverseconditions; for example, while a building may be burning down, partiallydestroyed due to acts of nature or due to physical world mishap. Damageto one part of a building, resulting in damage to the IoT network there,should not result in failure of the IoT network in an untouched part ofthe building. Security mechanisms are among the features to retainoperational integrity during survivability situations.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system in accordance with an embodiment.

FIG. 2 is a block diagram of an implementation of local ACL inaccordance with an embodiment.

FIG. 3 is a block diagram of an implementation of local ACL with remotedecision making in accordance with an embodiment.

FIG. 4 is a block diagram of an implementation of ACL redirection inaccordance with an embodiment.

FIG. 5 is a flow diagram of a resource optimization method in accordancewith an embodiment.

FIG. 6 is a block diagram of an example system with which embodimentscan be used.

FIG. 7 is a block diagram of a system in accordance with anotherembodiment of the present invention.

FIG. 8 is a block diagram of a wearable module in accordance withanother embodiment.

DETAILED DESCRIPTION

In various embodiments, a system of access control policies aresimplified for IoT class devices. Still further, varying degrees ofdistribution and coalescence are provided so that as much of the accesscontrol decision making can be applied as close to the device aspossible (resources permitting) if not directly by the device itself.

Embodiments define access policies using the same nouns and verbs (e.g.,resources and constrained application protocol (CoAP) commands) used todescribe IoT device interactions so that a mapping or translation to anaccess control grammar such as extensible access control markup language(XACML), open authorization (OAuth), security assertion markup language(SAML), etc., is avoided. Processing resource access requests is appliedby the endpoint device, also known as the resource server. Accesscontrol policy lists (ACL) resources capture the device-to-resourceinteraction semantic and apply an allow/deny policy expressed in termsof the possible ways in which the resource may be manipulated (e.g.,CRUDN, Create, Read, Update, Delete and Notify). Other actions areenvisioned as IoT device interaction semantics evolve.

Note that a representation of the ACL may be considered to be an IoTresource as well. This abstraction allows security operations to beperformed using the same IoT messaging mechanisms that are used tointeract with application resources. In this way, greaterinteroperability and more effective use of system resources such asmemory and storage are achieved.

IoT devices are often resource constrained, therefore a tradeoff is maderegarding how much of the device resources are used to achieveresilience properties vs. scalability properties. For example, a locallystored ACL enables the device to process access control requests evenwhen connectivity to the rest of network is blocked or when theauthorization server(s) are down. However, since devices are resourcelimited, only a small number of ACLs can reside locally. Scalabilitygoals may partition requestors into categories of resiliency whereaccess by devices that may protect critical infrastructure, preservelife or protect property assets may occupy local resources. Lesscritical functioning devices may employ access control mechanisms thatrefer the access decision to a nearby, but less resource limited IoTdevice. The price of scalability is the network latency and single pointof failure cost of having to rely on a neighboring IoT device. Stillanother class of devices may rely on a central service to issue ACLpolicies, but these may occupy device resources temporarily. During thevalidity period, connection to the central facility may be severed butaccess control is maintained. Fully scalable solutions rely on a centralservice for all ACL processing and decision making. Failure in theconnectivity or operation of the central policy service results indevice access failure.

Using an embodiment, access control mechanisms can be tailored to IoTnetwork topologies. For example, device resources can be partitionedaccording to device function as it relates to resilience objectives. Inparticular: ACL structures are expressed in the same format as deviceresources and range of function; ACL structures can be distributedacross many devices; ACL structures can be self-contained such that theendpoint device can fully apply the policy (without network connectivitybeyond what is available between the requesting device and the localresource server); ACL structures can be split into a local component anda remote component where the remote component identifies a helper devicethat is nearby according to the device topology; ACL structures can bedynamically provisioned and locally cached/stored such that the spaceoccupied can be reused according to a heat graph of requesting devices;ACL structures can be hosted by a remote device such that all requestsfrom a particular requestor are forwarded to a designated device; ACLstructures may be hosted by a remote device such that the requestingdevice is redirected to the remote device to obtain a single use tokengranting access to a specific resource or property of the device.

In an embodiment, selection of which ACL structure to use is determinedby a network setup utility that assists the network designer indetermining which device functions are useful for protecting criticalinfrastructure, semi-critical infrastructure, preserves human life,protects health and physical property. A determination may be maderegarding a weighing of resiliency vs. scalability in terms of potentialimpact to physical assets and cyber assets.

Referring now to FIG. 1, shown is a block diagram of a system inaccordance with an embodiment. IoT networks are often composed ofsub-networks where a portion of the network is tailored for improvedresiliency, availability and safety of IoT command-and-control, whileother parts of the network are optimized for improved mobility, dataavailability and integrity. Consequently, the access management systemmay be configured to accommodate these differences and designobjectives.

In the illustration of FIG. 1, a system 100 includes various componentsthat connect together in a network architecture. A first network portion110 is configured for autonomous operation of various devices such asIoT devices within this network portion. By way of the distributedarrangement of network 100, a security policy may be distributed acrossa hierarchy of nodes within different network portions. In this way,high availability low latency security decisions can be made locally infirst network portion 110, while greater amounts of latency and loweravailability may adhere as security decisions are distributed acrossdifferent portions of the network.

As further illustrated, network 100 includes a second network portion120, which may be configured to provide semi-autonomous operation forACL security decisions. Still further, a third network portion 130provides for higher latency ACL security decisions to be made, such asaccording to a traditional client-server model, e.g., for non-safetyand/or non-critical operations.

As seen, such devices may include a plurality of sensor devices 112₀-112 _(n) and a plurality of actuator devices 114 ₀-114 _(n). Ingeneral, sensor devices 112 may be configured to sense one or moreparticular conditions, such as one or more environmental conditions,operating conditions associated with it or another device or so forth.In general, actuators 114 may be configured to perform some type ofsensing operation and perform one or more actions based on one or moresensed parameters. To provide for autonomous operation including ACLprocessing, each of these devices may include an internal storage tostore corresponding ACLs, shown as ACLs 113 ₀-113 _(n) each included oneof sensor devices 112, and ACLs 115 ₀-115 _(n) each included in one ofactuator devices 114. As such, sensors 112 and actuators 115 may act astheir own security enforcement point by way of this included ACL.

To enable networking operations, including status, control and otheroperations to efficiently occur, each of sensors 112 and actuators 114may couple to one or more primary controllers 116. In general, primarycontrollers 116 may provide control information to the correspondingsensor devices and actuator devices, as well as receiving reports fromthese devices, which may be used in making command decisions, as well asproviding information to further portions of the network. In variousembodiments, primary controllers 116 may be configured as a controllersuch as a given hardware circuit to provide control actions to sensors112 and actuators 115. Still further, primary controllers 116 mayreceive updates to one or more security policies and apply such updatedsecurity policy to the sensors and/or actuators.

In the illustration of FIG. 1, second network portion 120 may beconfigured to include various components, including one or moresecondary controllers 125. In an embodiment, such secondary controllersmay be various types of computing devices, such as a smartphone, tabletcomputer, personal computer, server computer or so forth, gateway orother network device. Secondary controllers 125 may include or may beassociated with a cache memory 126 that may store ACLs as describedherein. In some cases, at least some amounts of ACLs stored in cachememory 126 may be provisioned, e.g., at least temporarily, to one ormore of sensor devices 112 and/or actuators 114 within first networkportion 110.

As further illustrated, requests for resource access may be eithergenerated within secondary controllers 125 or received from deviceswithin first network portion 110, may be routed to third network portion130. In various embodiments, third network portion 130 may be formed ofa traditional client-server model, in which one or more computingdevices 135, which may be implemented as one or more server computers(as an example) are present. Central server 135 may be configured toprovide a centralized security policy for network 100 and enabledistribution of various security determination and enforcement actionsto other devices with the network. In various embodiments, servercomputers 135 may provide various services, including cloud services,enterprise services, factory floor services and so forth. As seen,server computers 135 may include or otherwise be associated with astorage 136, which in one embodiment may take the form of a cachememory. In various embodiments, this database in storage 136 may be theauthoritative database for all ACLs for a given network. To this end,responsive to requests for ACL processing, server computers 135 may sendauthentication tokens, which may be single use tokens to grant access toa requested resource of a given device, or responsive to a request foran ACL itself, an ACL can be dynamically provisioned to the device, atleast temporarily.

Embodiments achieve security goals by supporting multiple approaches toACL management and operation. IoT networks that operate autonomouslyhave low-latency in decision making and control. Resource accessdecision overhead is to be minimized. Network latency is a majorconsideration in the overall latency budget. Embodiments may eliminatenetwork latency by storing ACLs in sensors and actuators, closest towhere the resources are hosted. For semi-autonomous operation, asecondary controller is responsible for maintaining access controlpolicy due to expected frequency of policy update. Nevertheless,efficient low-latency operation may be implemented for a period of timeor for a specific set of devices. In this scenario, a temporary ACL maybe provisioned to the autonomous operating devices while tasks that arenot safety critical may depend on the secondary controller beingavailable. If unavailable, access decisions are put on hold, withminimal negative impact to safety critical functions.

For non-safety critical operation, a more traditional client-serverapproach may suffice where, for each access request, an authorizationtoken may be constructed and presented to the resource host forevaluation. The resource host may validate the service issuing the tokenin order to determine whether the request is authorized. However, thetrade-off is multiple exchanges that incur network latency at eachexchange. Hence, real-time and near real-time control applicationscannot be satisfied using client-server operation. However, if largenumber of requesting entities exists, the server can scale to satisfythe volume.

Referring now to FIGS. 2-4, shown are different techniques forevaluating ACL policies in accordance with embodiments. Note that eachtechnique may be tuned for a particular operational optimization goal.

FIG. 2 is a block diagram of an implementation of local ACL, which maysupport the highest safety requirements. The device D1 (client device210) requests access to a resource R1 hosted by the resource server(Device 5) (server device 220). The local host ACL policy allows R(ead)access to R1. This policy is evaluated without additional networklatency.

As shown in FIG. 2, arrangement 200 includes a client device 210 and aserver device 220. In general, client device 210 may be a requester of aresource available in server device 220. Understand that the client andserver devices can take many different forms in different embodiments.However, for purposes of illustration herein, assume that client device210 is a requesting device such as a primary or secondary controller(such as described in FIG. 1) and that server device 220 is a given IoTdevice such as a sensor device or an actuator device (such as describedin FIG. 1), which in the case shown includes a resident ACL 225. Asseen, client device 210 issues a request for access to a particularresource R1 of resources R1-R5 included in server device 220. In turn,server device 220 accesses ACL 225. As seen, ACL 225 includes variousfields, including a subject field 226, a resource field 227, and apermission field 228. As seen, subject field 226 identifies a source ofa request and here identifies client device 210. Resource field 227identifies one or more resources that may be accessed by the subject,here including requested resource R1, which may be a data value storedin a particular location, such as a sensor register or other storage. Inturn, permission field 228 indicates the type of permission to begranted. In this instance a read (R) permission is granted. As such, therequested resource, R1, is provided in a reply from server device 220 toclient device 210. Note that permission field 228 may indicate one ormore particular types of permissions to be granted. In embodiments ofIoT devices, such permissions may include, in addition to CRUDN (createread update delete and notify), an additional permission to allowpublication, and thus a publish permission may be provided. Note that insome cases an ACL structure can be split into a local component (ACL225) and a remote component, where the remote component identifies ahelper device that may be within a local area or otherwise associatedwith the device, according to a device topology. Stated another way, thelocal component may be used to match resources residing locally, butdepends on the remote service to supply access permission guidances.

FIG. 3 is a block diagram of an implementation of local ACL with remotedecision making, which may support moderately high resiliency and safetygoals. In this implementation, the client device D3 (310) requestsaccess to a resource R3 hosted by device D5 (320), but according to anACL entry 325 (with subject, resource and distribution fields 326, 327,328) the access decision is distributed to an Access Manager Service(AMS1) 330. The AMS has an ACL policy 335 (with subject, resource, andpermission fields, 336, 337, and 338) that specifies D3's access rights.The original request is relayed to AMS1 by D5 and a response R(ead) isreturned. Additional network latency is incurred for the relayed requestand response, but since the AMS1 is somewhat near D5, given resiliencyand safety goals can be met. Note that in various embodiments, accessmanager service 330 may be a secondary controller (such as shown inFIG. 1) or a traditional server (also shown in FIG. 1).

FIG. 4 is a block diagram of an implementation of ACL redirection, whichmay support lower expectations of resiliency. Here, a requesting deviceD4 (410) requests access to resource R4 hosted by D5 (420). Initially,D5 does not possess a suitable ACL policy therefore the request isdenied or redirected to an Access Manager Service (AMS1) (430). Thissituation thus may reflect an on demand provisioning flow in which inthis initial instance, server device 420 does not have a stored ACL forthis subject device. D4 presents the request to the AMS that in turnissues/signs a temporal ACL that satisfies the request. D4 delivers thesigned ACL to D5, and then retries the request. Thus as seen in thedashed box of FIG. 4, server device 420 receives and stores ACL 425,including constituent subject field 426, resource field 427, andpermission field 428. This time the request succeeds. Subsequentrequests of the same content may also succeed so long as the ACLsignature is valid. Thus this cached copy 425 of the ACL may be stored,at least temporarily, in server device 420 to enable reduced latency forfurther requests. A variation of this technique may produce a token thatcontains authorization for a one-time-use permission allowing access.This may be a hybrid of FIGS. 3 and 4, and may limit access to aspecific property or interface defined by the resource.

Embodiments may further determine how best to utilize constrainedresources of the various sensors, actuators controllers and otherservers to optimize for safety and resiliency. Referring now to FIG. 5shown is a flow diagram of a resource optimization method in accordancewith an embodiment, which may be used to ensure safe and resilientoperation given limited device resources.

As one example, method 500 may be performed via a network setup utilitythat assists a network designer in determining which device functionscan be used to protect a variety of resources. In some cases, thisutility may be used during network design, as well as on-boarding of adevice into a network, which may occur dynamically during systemoperation of an already configured network, such as a distributednetwork as described herein.

As seen, method 500 begins by stereotyping system devices according to agradation of safety relevance values (SRVs) (block 510). As one example,devices may be identified as being safety relevant as to whether theyperform one or more safety critical functions. For example, an emergencyescape route may include emergency path lighting so that an escapee canfind the escape route while crawling below a smoke line. Further, theescape route may have doors that automatically close to prevent thespread of fire. And further, doors that are activated for a fireemergency are prevented from locking closed so as not to block an escaperoute. A safety classification scheme further may involve assignment ofa safety class rating, where a device is labeled during deployment asbeing L, M or Highly relevant to a safety consideration. For example,devices with a H rating may be given preferential access to encryptionkey storage resources, access policies and CPU scheduling on a localdevice to better ensure safety critical operations can completeexecution with minimal external dependencies. Such designations mayfurther involve application of a different security model, such as onethat minimizes reliance on external supporting services such as an AMS.

In other cases, low, medium and high levels may be assigned to devices.In any event, after assigning relevance values to the given devices(safety and/or otherwise) within the network, an access control policygeneration loop may be performed for each device D.

As seen, this loop may begin by selecting a device Dn from a list ofdevices of the system and determining whether this list is non-null(diamond 515). If not, control passes to diamond 520 to determinewhether device D interacts with device Dn. If so, control passes todiamond 525 where it can be determined whether the safety relevancevalues of these two devices are at least approximately equal.Device-device interactions involving H-H interactions may be givenscheduling and network bandwidth preferences over M-M or L-L. At diamond325, it can be established that H safety labeled devices are givenpreference for locality operation. That is to say, local resources areassigned to H tasks first and if a constrained environment is fullyallocated and there are other H operations to be performed, the nextclosest locality (e.g., secondary controller) will give preference to Hrequests and possibly forward M or L requests to a next hop awaylocality controller, and so forth. Based on the determination at diamond525, control passes to diamond 530 to determine whether device D hassufficient memory resources to store a local ACL policy that names Dn asits subject. If so, control passes to block 535 where a local ACL may becreated and stored in device D for device Dn. As described above, thisACL may store various fields including a subject field, a resource fieldand a permission field, at least. Control then passes back to diamond515, discussed above.

Note that if it is determined at diamond 530 that device D does not havesufficient memory resources, control passes to block 540 where anadministrator/user may be notified of a possible safety consideration.Responsive to this notification, a safety log may be created alertingsafety auditors of network conditions that could be an indication of‘weaknesses’ in the safety design of the network. Review of safety logsmay result in a re-design of the network to remove safety gaps. Notethat if at diamond 525 it is determined that the SRVs are not at leastapproximately equal, control passes to diamond 550. Device interactionsthat have safety parity (H-H) interactions are given preference over M-Mor L-L. Note that H-M or H-L interactions may be given priority over M-Mor L-L. Writing a safety relevant event to a log may be an instance of aH-M or H-L relationship.

At diamond 550 it may be determined whether there is a primary orsecondary controller coupled to device D that has sufficient memoryresources to handle maintenance of an access control policy for deviceDn, and also displays low network latency to device D. With referenceback to FIG. 1, such primary or secondary controllers may be located infirst network portion 110 or second network portion 120, as examples. Ifsuch primary or secondary controller exists, control passes to block 560where an access policy may be created in such controller that definesaccess rights for the resources of device D. Such one or more ACLs thusmay be stored in or associated with such controllers.

Otherwise if at diamond 550 it is determined that there is no availableprimary or secondary controller, control passes to diamond 570 todetermine whether device D has access to an access manager service. Ifso, control passes to block 580 where an access policy can be created inthe access manager service that defines Dn's access rights for D'sresources. Thus such ACLs may be stored and/or associated with thisaccess manager service. If no such access manager service is availablefor access by device D, control instead passes to block 540, discussedabove. Understand while shown at this high level in the embodiment ofFIG. 5, many variations and alternatives are possible.

Embodiments may thus provide a combination of access control techniquesaimed at IoT class devices that have limited resources and may havestrong requirements for safe operation where network latencies mayprevent existing (Internet) approaches to authorization management. Morespecifically, ACLs provisioned into local device memory may be usedwhere access decisions can be evaluated quickly for requesters that arestereotyped as requiring strong safety properties. ACLs also may beprovisioned in a primary or secondary controller where the ACL policy isclose to the resource server in which the access decision is applied.

In embodiments, an access management service may dynamically construct alocally evaluated ACL and specify a lifetime, where subsequent requestsby a given device may be honored without incurring network latencyoverhead within the lifetime. An access management service also mayissue a token that authorizes access to a resource or a property of thatresource for a one-time-use basis. Embodiments may also use an IoTnetwork management and provisioning utility to establish a safetyrelevance value that is also used to manage limited device resourcesoptimized for safe operation while also preserving secure operation. Assuch, an ACL representation can be distributed according to the topologyof an IoT network and available device resources.

Referring now to FIG. 6, shown is a block diagram of an example systemwith which embodiments can be used. As seen, system 900 may be asmartphone or other wireless communicator or any other IoT device. Abaseband processor 905 is configured to perform various signalprocessing with regard to communication signals to be transmitted fromor received by the system. In turn, baseband processor 905 is coupled toan application processor 910, which may be a main CPU of the system toexecute an OS and other system software, in addition to userapplications such as many well-known social media and multimedia apps.Application processor 910 may further be configured to perform a varietyof other computing operations for the device.

In turn, application processor 910 can couple to a userinterface/display 920, e.g., a touch screen display. In addition,application processor 910 may couple to a memory system including anon-volatile memory, namely a flash memory 930 and a system memory,namely a DRAM 935. In some embodiments, flash memory 930 may include asecure portion 932 in which secrets and other sensitive information maybe stored. As further seen, application processor 910 also couples to acapture device 945 such as one or more image capture devices that canrecord video and/or still images.

Still referring to FIG. 6, a universal integrated circuit card (UICC)940 comprises a subscriber identity module, which in some embodimentsincludes a secure storage 942 to store secure user information. System900 may further include a security processor 950 that may implement aTEE as described earlier, and which may couple to application processor910. Furthermore, application processor 910 may implement a secure modeof operation, such as Intel® SGX for hosting of a TEE, as describedearlier. A plurality of sensors 925, including one or more multi-axisaccelerometers may couple to application processor 910 to enable inputof a variety of sensed information such as motion and otherenvironmental information. In addition, one or more authenticationdevices 995 may be used to receive, e.g., user biometric input for usein authentication operations.

As further illustrated, a near field communication (NFC) contactlessinterface 960 is provided that communicates in a NFC near field via anNFC antenna 965. While separate antennae are shown in FIG. 6, understandthat in some implementations one antenna or a different set of antennaemay be provided to enable various wireless functionality.

A power management integrated circuit (PMIC) 915 couples to applicationprocessor 910 to perform platform level power management. To this end,PMIC 915 may issue power management requests to application processor910 to enter certain low power states as desired. Furthermore, based onplatform constraints, PMIC 915 may also control the power level of othercomponents of system 900.

To enable communications to be transmitted and received such as in oneor more IoT networks, various circuitry may be coupled between basebandprocessor 905 and an antenna 990. Specifically, a radio frequency (RF)transceiver 970 and a wireless local area network (WLAN) transceiver 975may be present. In general, RF transceiver 970 may be used to receiveand transmit wireless data and calls according to a given wirelesscommunication protocol such as 3G or 4G wireless communication protocolsuch as in accordance with a code division multiple access (CDMA),global system for mobile communication (GSM), long term evolution (LTE)or other protocol. In addition a GPS sensor 980 may be present, withlocation information being provided to security processor 950 for use asdescribed herein when context information is to be used in a pairingprocess. Other wireless communications such as receipt or transmissionof radio signals, e.g., AM/FM and other signals may also be provided. Inaddition, via WLAN transceiver 975, local wireless communications, suchas according to a Bluetooth™ or IEEE 802.11 standard can also berealized.

Referring now to FIG. 7, shown is a block diagram of a system inaccordance with another embodiment of the present invention. As shown inFIG. 7, multiprocessor system 1000 is a point-to-point interconnectsystem such as a server system, and includes a first processor 1070 anda second processor 1080 coupled via a point-to-point interconnect 1050.As shown in FIG. 7, each of processors 1070 and 1080 may be multicoreprocessors such as SoCs, including first and second processor cores(i.e., processor cores 1074 a and 1074 b and processor cores 1084 a and1084 b), although potentially many more cores may be present in theprocessors. In addition, processors 1070 and 1080 each may include asecure engine 1075 and 1085 to perform security operations such asattestations, IoT network onboarding or so forth.

Still referring to FIG. 7, first processor 1070 further includes amemory controller hub (MCH) 1072 and point-to-point (P-P) interfaces1076 and 1078. Similarly, second processor 1080 includes a MCH 1082 andP-P interfaces 1086 and 1088. As shown in FIG. 7, MCH's 1072 and 1082couple the processors to respective memories, namely a memory 1032 and amemory 1034, which may be portions of main memory (e.g., a DRAM) locallyattached to the respective processors. First processor 1070 and secondprocessor 1080 may be coupled to a chipset 1090 via P-P interconnects1052 and 1054, respectively. As shown in FIG. 7, chipset 1090 includesP-P interfaces 1094 and 1098.

Furthermore, chipset 1090 includes an interface 1092 to couple chipset1090 with a high performance graphics engine 1038, by a P-P interconnect1039. In turn, chipset 1090 may be coupled to a first bus 1016 via aninterface 1096. As shown in FIG. 7, various input/output (I/O) devices1014 may be coupled to first bus 1016, along with a bus bridge 1018which couples first bus 1016 to a second bus 1020. Various devices maybe coupled to second bus 1020 including, for example, a keyboard/mouse1022, communication devices 1026 and a data storage unit 1028 such as anon-volatile storage or other mass storage device. As seen, data storageunit 1028 may include code 1030, in one embodiment. As further seen,data storage unit 1028 also includes a trusted storage 1029 to storesensitive information to be protected. Further, an audio I/O 1024 may becoupled to second bus 1020.

Embodiments may be used in environments where IoT devices may includewearable devices or other small form factor IoT devices. Referring nowto FIG. 8, shown is a block diagram of a wearable module 1300 inaccordance with another embodiment. In one particular implementation,module 1300 may be an Intel® Curie™ module that includes multiplecomponents adapted within a single small module that can be implementedas all or part of a wearable device. As seen, module 1300 includes acore 1310 (of course in other embodiments more than one core may bepresent). Such core may be a relatively low complexity in-order core,such as based on an Intel Architecture® Quark™ design. In someembodiments, core 1310 may implement a TEE as described herein. Core1310 couples to various components including a sensor hub 1320, whichmay be configured to interact with a plurality of sensors 1380, such asone or more biometric, motion environmental or other sensors. A powerdelivery circuit 1330 is present, along with a non-volatile storage1340. In an embodiment, this circuit may include a rechargeable batteryand a recharging circuit, which may in one embodiment receive chargingpower wirelessly. One or more input/output (IO) interfaces 1350, such asone or more interfaces compatible with one or more of USB/SPI/I²C/GPIOprotocols, may be present. In addition, a wireless transceiver 1390,which may be a Bluetooth™ low energy or other short-range wirelesstransceiver is present to enable wireless communications as describedherein. Understand that in different implementations a wearable modulecan take many other forms.

The following Examples pertain to further embodiments.

In Example 1, an apparatus comprises: a processor; a sensor to sense atleast one parameter; a first storage to store the at least oneparameter; and a second storage to store a first access control listassociated with a first device. The processor may be configured todetermine whether to grant an access request received from the firstdevice to access a first resource of the apparatus based on the firstaccess control list. The apparatus and the first device may be coupledin a distributed network having a distributed access control policy inwhich the apparatus is to locally host access control policy for a firstsubset of devices and at least one access manager service is to remotelyhost access control policy for a second subset of devices.

In Example 2, the apparatus of Example 1 is to receive a second requestfrom a second device to access a second resource of the apparatus andforward the second request to the access manager service, where thesecond device is of the second subset of devices.

In Example 3, the apparatus of one or more of the above Examples is,responsive to a third request received from a third device, to send aredirection message to the third device to cause the third device tosend the third request to the access manager service, to cause a thirdaccess control list associated with the third device to be dynamicallyprovisioned to the second storage.

In Example 4, the first subset of devices comprises safety-relateddevices and the second subset of devices comprises non-safety-relateddevices.

In Example 5, the first device is of the first subset of devices, thefirst resource and the first device having a common safety label, and anintermediary device is to enable the access request to be sent to theapparatus based at least in part on a subject credential including thecommon safety label.

In Example 6, the first access control list comprises a subject field tostore an identifier of the first device, a resource field to store aresource identifier of the first resource, and a permission field tostore one or more access types to be granted to the first device.

In Example 7, the second storage of one or more of the above Examples isto store a third access control list comprising a subject field to storean identifier of a third device, a resource field to store a resourceidentifier of a third resource of the apparatus, and a distributionfield to identify a distributed entity that is to perform an accessdecision for the third device.

In Example 8, the apparatus of one or more of the above Examples is tobe dynamically provisioned with the first access control list based atleast in part on a relevance value associated with the first device.

In Example 9, the apparatus of Example 8 is to thereafter delete thefirst access control list from the second storage based on requestactivity of the first device.

In Example 10, the apparatus of one or more of the above Examplescomprises a sensor device.

In Example 11, the apparatus of one or more of the above Examplesfurther comprises a networking device coupled between the first deviceand the apparatus. The network device may be configured to enable afirst communication from the first device to be delivered to theapparatus, where the first device and the apparatus have a common safetylabel, the first communication having a first credential associated withthe common safety device.

In Example 12, a method comprises: receiving a first request from afirst device to access a first resource of the system and determiningwhether to grant access to the first resource based on a first accesscontrol list stored in the system, the first access control listassociated with the first device, the first device having a firstrelevance value, and based on the determination, granting the access tothe first resource. The method further comprises receiving a secondrequest from a second device to access a second resource of the systemand forwarding the second request to an access manager service coupledto the system to determine whether to grant access to the secondresource based on a second access control list stored in the accessmanager service, the second access control list associated with thesecond device, the second device having a second relevance value,receiving an access grant from the access manager service and basedthereon, granting the access to the second resource.

In Example 13, the method further comprises: receiving a third requestfrom a third device to access a third resource of the system, where at atime of receipt of the third request, the system does not store a thirdaccess control list associated with the third device; sending aredirection message to the third device, to cause the third device tosend the third request to the access manager service; receiving thethird access control list from the third device, the third accesscontrol list obtained in the third device from the access managerservice; and receiving a fourth request from the third device to accessthe third resource and determining whether to grant access to the thirdresource based on the third access control list stored in the system.

In Example 14, the third access control list comprises a signed accesscontrol list, and the method further comprises receiving a fifth requestfrom the third device to access the third resource and preventing theaccess if a signature of the signed access control list is invalid.

In Example 15, the method further comprises storing the first accesscontrol list in the system based on the first relevance value and notstoring the second access control list in the system based on the secondrelevance value.

In Example 16, the method further comprises causing the second accesscontrol list to be stored in a controller located in a common networkportion with the system.

In Example 17, the system comprises a sensor device, the sensor deviceincluding a storage to store the first access control list, and wherethe sensor device is located in a first network portion and is coupledto a controller located in the first network portion, the controllercomprising the access manager service to store the second access controllist.

In Example 18, the access grant to the first resource comprises one of acreate, read, update, delete, notify and publish access.

In Example 19, the method further comprises dynamically provisioning thefirst access control list into the system and to thereafter deleting thefirst access control list from the system based on request activity ofthe first device.

On Example 20, the method further comprises receiving an authorizationtoken from the access manager service, validating the authorizationtoken, and responsive to validation of the authorization token, enablinga fourth device to access a fourth resource of the system.

In Example 21, the method further comprises receiving a resource accessrequest from a requester device to access a requested resource of thesystem, redirecting the resource access request to the access managerservice, and thereafter receiving a token generated by the accessmanager service, and granting the access to the requested resource.

In another example, a computer readable medium including instructions isto perform the method of any of the above Examples.

In another example, a computer readable medium including data is to beused by at least one machine to fabricate at least one integratedcircuit to perform the method of any one of the above Examples.

In another example, an apparatus comprises means for performing themethod of any one of the above Examples.

In Example 22, a system comprises: at least one sensor device includinga processor and a storage to store a first access control listassociated with a first device, where the processor is to determinewhether to grant an access request received from the first device toaccess a first resource of the at least one sensor device based on thefirst access control list, the at least one sensor device and the firstdevice coupled in a distributed network having a distributed accesscontrol policy in which the at least one sensor device is to locallyhost access control policy for a first subset of devices and at leastone access manager service is to remotely host access control policy fora second subset of devices, the at least one sensor device to be locatedin a first portion of a network. The system may further comprise a firstcontroller coupled to the at least one sensor device, the firstcontroller to control the at least one sensor device, the firstcontroller including a second storage to store a second access controllist and to determine whether to allow a second device to access the atleast one sensor device based on the second access control list, thefirst controller located in a second portion of the network.

In Example 23, the first network portion comprises an autonomous networkportion and the second network portion comprises a semi-autonomousnetwork portion.

In Example 24, the system of one or more of the above Examples furthercomprises a server coupled to the first controller, the servercomprising an access manager service and a storage to store a thirdaccess control list. In turn, the access manager service is to determinewhether to allow a third device to access the at least one sensor devicebased on the third access control list, the server located in a thirdportion of the network.

In Example 25, the access manager service is to dynamically provisionthe third access control list to the at least one sensor device as atemporal access control list, to enable the at least one sensor deviceto perform access control decisions with regard to the third devicewithin a temporal window.

In Example 26, a system comprises: a sensor means for sensing. Thesensor means may include a processor means and a storage means forstoring a first access control list associated with a first device,where the processor means is for determining whether to grant an accessrequest received from the first device to access a first resource of theat least one sensor device based on the first access control list. Thesensor means and the first device may be coupled in a distributednetwork having a distributed access control policy in which the sensormeans is to locally host access control policy for a first subset ofdevices and at least one access manager service is to remotely hostaccess control policy for a second subset of devices, the sensor meansto be located in a first portion of a network. The system may furthercomprise a first controller means coupled to the at least one sensordevice, the first controller means for controlling the at least onesensor device, the first controller means including a second storagemeans for storing a second access control list and for determiningwhether to allow a second device to access the sensor means based on thesecond access control list, the first controller means located in asecond portion of the network.

In Example 27, the first network portion comprises an autonomous networkportion and the second network portion comprises a semi-autonomousnetwork portion.

In Example 28, the system further comprises a server means coupled tothe first controller means, the server means comprising an accessmanager service and a storage means for storing a third access controllist. In turn, the access manager service is to determine whether toallow a third device to access the sensor means based on the thirdaccess control list, the server means located in a third portion of thenetwork.

In Example 29, the access manager service is to dynamically provisionthe third access control list to the sensor means as a temporal accesscontrol list, the sensor means for performing access control decisionswith regard to the third device within a temporal window.

Embodiments may be used in many different types of systems. For example,in one embodiment a communication device can be arranged to perform thevarious methods and techniques described herein. Of course, the scope ofthe present invention is not limited to a communication device, andinstead other embodiments can be directed to other types of apparatusfor processing instructions, or one or more machine readable mediaincluding instructions that in response to being executed on a computingdevice, cause the device to carry out one or more of the methods andtechniques described herein.

Embodiments may be implemented in code and may be stored on anon-transitory storage medium having stored thereon instructions whichcan be used to program a system to perform the instructions. Embodimentsalso may be implemented in data and may be stored on a non-transitorystorage medium, which if used by at least one machine, causes the atleast one machine to fabricate at least one integrated circuit toperform one or more operations. The storage medium may include, but isnot limited to, any type of disk including floppy disks, optical disks,solid state drives (SSDs), compact disk read-only memories (CD-ROMs),compact disk rewritables (CD-RWs), and magneto-optical disks,semiconductor devices such as read-only memories (ROMs), random accessmemories (RAMs) such as dynamic random access memories (DRAMs), staticrandom access memories (SRAMs), erasable programmable read-only memories(EPROMs), flash memories, electrically erasable programmable read-onlymemories (EEPROMs), magnetic or optical cards, or any other type ofmedia suitable for storing electronic instructions.

While the present invention has been described with respect to a limitednumber of embodiments, those skilled in the art will appreciate numerousmodifications and variations therefrom. It is intended that the appendedclaims cover all such modifications and variations as fall within thetrue spirit and scope of this present invention.

What is claimed is:
 1. At least one computer readable storage mediumcomprising instructions that when executed enable a system to:responsive to a first request from a client device to access a resourceof the system, search for an access control entry for the client devicepertaining to the resource; responsive to absence of the access controlentry for the client device pertaining to the resource, provide amessage to the client device with an identity of an access managerservice of an access manager server, wherein the system comprises aserver device; receive an access control list from the client device andstore the access control list in the system; and responsive to a secondrequest from the client device to access the resource, grant access tothe resource based on a first access control entry in the access controllist of the system, the first access control entry to identify theclient device as a subject, to identify the resource, and to identify apermission type associated with the resource and the client device. 2.The at least one computer readable storage medium of claim 1, furthercomprising instructions that when executed enable the system to:responsive to a third request from the client device to access a secondresource of the system, grant access to the second resource based on asecond access control entry in the access control list of the system,the second access control entry to identify the client device as asubject, to identify the second resource, and to identify a permissiontype associated with the second resource and the client device.
 3. Theat least one computer readable storage medium of claim 2, furthercomprising instructions that when executed enable the system to,responsive to: a fourth request from a second client device to access athird resource of the system, deny access to the third resourceresponsive to absence of an access control policy in the system for thesecond client device pertaining to the third resource.
 4. The at leastone computer readable storage medium of claim 2, further comprisinginstructions that when executed enable the system to: responsive to afifth request from a third client device to access a fourth resource ofthe system, send information corresponding to the fifth request to theaccess manager service, wherein an access control entry of a secondaccess control list of the system is to indicate that the system is toconsult the access manager service, the access control entry of thesecond access control list to identify the third client device as asubject, to identify the fourth resource, and to identify the accessmanager service.
 5. The at least one computer readable storage medium ofclaim 4, further comprising instructions that when executed enable thesystem to grant the third client device access to the fourth resource inresponse to a reply from an access manager server.
 6. The at least onecomputer readable storage medium of claim 5, wherein the reply from theaccess manager service includes an access grant from the access managerservice, and further comprising instructions that when executed enablethe system based thereon to grant the third client device access to thefourth resource.
 7. The at least one computer readable storage medium ofclaim 1, wherein the client device has a first relevance value, andfurther comprising instructions that when executed enable the system tostore the access control list in the system based on the first relevancevalue.
 8. The at least one computer readable storage medium of claim 1,wherein the message comprises a redirection message.
 9. The at least onecomputer readable storage medium of claim 1, wherein the access controllist comprises a signed access control list, and further comprisinginstructions that when executed enable the system to, responsive toanother request from another client device to access the first resource,deny access to the first resource if a signature of the signed accesscontrol list is invalid.
 10. The at least one computer readable storagemedium of claim 1, further comprising instructions that when executedenable the system to grant access to the first resource based at leastin part on an identity of the client device.
 11. The at least onecomputer readable storage medium of claim 1, further comprisinginstructions that when executed enable the system to grant access to thefirst resource based at least in part on a role of the client device.12. The at least one computer readable storage medium of claim 1,further comprising instructions that when executed enable the system togrant access to the first resource based at least in part on a groupcredential to indicate membership of the client device in a group ofdevices.
 13. A method comprising: responsive to a first request from aclient device to access a resource of a system, searching for an accesscontrol entry for the client device pertaining to the resource;responsive to absence of the access control entry for the client devicepertaining to the resource, providing a message to the client devicewith an identity of an access manager service of an access managerserver; receiving an access control list from the client device andstoring the access control list in the system; and responsive to asecond request from the client device to access the resource, grantingaccess to the resource based on a first access control entry in theaccess control list of the system, the first access control entry toidentify the client device as a subject, to identify the resource, andto identify a permission type associated with the resource and theclient device.
 14. The method of claim 13, further comprising,responsive to a third request from the client device to access a secondresource of the system, granting access to the second resource based ona second access control entry in the access control list of the system,the second access control entry to identify the client device as asubject, to identify the second resource, and to identify a permissiontype associated with the second resource and the client device.
 15. Themethod of claim 14, further comprising responsive to a fourth requestfrom a second client device to access a third resource of the system,denying access to the third resource responsive to absence of an accesscontrol policy in the system for the second client device pertaining tothe third resource.
 16. The method of claim 14, further comprising,responsive to a fifth request from a third client device to access afourth resource of the system, sending information corresponding to thefifth request to the access manager service, wherein an access controlentry of a second access control list of the system is to indicate thatthe system is to consult the access manager service, the access controlentry of the second access control list to identify the third clientdevice as a subject, to identify the fourth resource, and to identifythe access manager service.
 17. A system comprising: a processor; afirst storage to store a plurality of access control lists; and a secondstorage to store instructions that when executed enable the system to:responsive to a first request from a client device to access a resourceof the system, search for an access control entry for the client devicepertaining to the resource; responsive to absence of the access controlentry for the client device pertaining to the resource, provide amessage to the client device with an identity of an access managerservice of an access manager server; receive an access control list fromthe client device and store the access control list in the firststorage; and responsive to a second request from the client device toaccess the resource, grant access to the resource based on a firstaccess control entry in the access control list, the first accesscontrol entry to identify the client device as a subject, to identifythe resource, and to identify a permission type associated with theresource and the client device.
 18. The system of claim 17, wherein thesecond storage further comprises instructions that when executed enablethe system, responsive to a third request from the client device toaccess a second resource of the system, to grant access to the secondresource based on a second access control entry in the access controllist, the second access control entry to identify the client device as asubject, to identify the second resource, and to identify a permissiontype associated with the second resource and the client device.
 19. Thesystem of claim 18, wherein the second storage further comprisesinstructions that when executed enable the system, responsive to afourth request from a second client device to access a third resource ofthe system, to deny access to the third resource responsive to absenceof an access control policy in the system for the second client devicepertaining to the third resource.
 20. The system of claim 18, whereinthe second storage further comprises instructions that when executedenable the system, responsive to a fifth request from a third clientdevice to access a fourth resource of the system, to send informationcorresponding to the fifth request to the access manager service,wherein an access control entry of a second access control list storedin the first storage is to indicate that the system is to consult theaccess manager service, the access control entry of the second accesscontrol list to identify the third client device as a subject, toidentify the fourth resource, and to identify the access managerservice.